import request from "@/utils/request";

const DICT_BASE_URL = "/system/job";

const JobAPI = {
  /**
   * 岗位分页列表
   * @param queryParams 查询参数
   * @returns 岗位分页结果
   */
  getPage(queryParams: PageQuery) {
    return request<any, PageResult<JobPageVO[]>>({
      url: `${DICT_BASE_URL}/loadPage`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 岗位列表
   * @returns 岗位列表
   */
  getOptions() {
    return request<any, JobPageVO[]>({
      url: `${DICT_BASE_URL}/loadAll`,
      method: "get",
    });
  },

  /**
   * 岗位表单数据
   * @param id 岗位ID
   * @returns 岗位表单数据
   */
  getFormData(id: string) {
    return request<any, JobForm>({
      url: `${DICT_BASE_URL}/load/${id}`,
      method: "get",
    });
  },

  /**
   * 新增岗位
   * @param data 岗位表单数据
   */
  create(data: JobForm) {
    return request({
      url: `${DICT_BASE_URL}/add`,
      method: "post",
      data,
    });
  },

  /**
   * 修改岗位
   * @param id 岗位ID
   * @param data 岗位表单数据
   */
  update(data: JobForm) {
    return request({
      url: `${DICT_BASE_URL}/update`,
      method: "post",
      data,
    });
  },

  /**
   * 删除岗位
   */
  deleteByIds(id: string) {
    return request({
      url: `${DICT_BASE_URL}/delete/${id}`,
      method: "get",
    });
  },
};

export default JobAPI;

/**
 * 岗位分页对象
 */
export interface JobPageVO {
  /**
   * 岗位ID
   */
  id: string;
  /**
   * 岗位名称
   */
  name: string;
  /**
   * 描述
   */
  remark?: string;
}

/**
 * 岗位
 */
export interface JobForm {
  /**
   * 岗位ID
   */
  id?: string;
  /**
   * 岗位名称
   */
  name?: string;
  /**
   * 备注
   */
  remark?: string;
}
